package com.geniusk.system.service;

import com.geniusk.system.model.pojo.Menu;

import java.util.HashMap;
import java.util.List;
import java.util.Set;

public interface MenuService {

    /**
     * 查询所有菜单
     * @param menu 菜单信息
     * @return 菜单列表
     */
    List<Menu> selectAllMenu(Menu menu);

    /**
     * 根据菜单ID判断菜单否存在
     * @param menuIds 菜单ID
     * @return 是否存在，true 存在，false不存在
     */
    boolean selectMenuIsExistByMenuIds(Long[] menuIds);

    /**
     * 新增菜单
     * @param menu 菜单信息
     * @return 插入行数
     */
    int insertMenu(Menu menu);

    /**
     * 修改角色
     * @param menu 角色信息
     * @return 修改行数
     */
    int updateMenu(Menu menu);

    /**
     * 根据菜单ID删除菜单
     * @param ids 菜单ID
     * @return 删除行数
     */
    int deleteMenuByIds(Long[] ids);

    /**
     * 根据用户查询菜单树信息
     * @param hashMap 菜单查询信息
     * @return 菜单列表
     */
    List<Menu> selectMenuByUserId(HashMap<String,Object> hashMap);

    /**
     * 根据角色ID查询菜单
     * @param roleId 用户ID
     * @return 菜单列表
     */
    List<String> selectMenuByRoleId(Long roleId);

    /**
     * 获取用户功能权限
     * @param userId 用户Id
     * @return 角色权限信息
     */
    Set<String> selectPermissionByUserId(Long userId);
}
